// pages/my/index.js
const { api } = require('../../utils/api.js');

Page({
  data: {
    userInfo: {
      avatarUrl: '',
      nickName: '',
      phoneNumber: '',
      userId: ''
    },
    userStats: {
      daysCount: 30,
      recordCount: 125,
      followCount: 12
    },
    phoneNumber: '',
    avatar: '',
    foodRecord: {
      balanceRatio: 0,
      breakfastCount: 0,
      shareCount: 0
    },
    orderStats: {
      waiting: 0,
      paid: 0,
      completed: 0,
      cancelled: 0
    },
    followList: [],
    newsList: [], // 添加资讯列表数据
    isEditingNickname: false,   // 是否正在编辑昵称
    newNickname: '',           // 新昵称暂存
    isEditingPhone: false,     // 是否正在编辑手机号
    newPhoneNumber: ''         // 新手机号暂存
  },

  onLoad: function () {
    this.getUserInfo();
    this.getFoodRecord();
    this.getFollowList();
    this.getNewsList(); // 获取资讯列表
    this.getOrderStats(); // 获取订单统计
  },

  onShow: function () {
    this.getUserInfo();
    this.getFoodRecord();
    this.getFollowList();
    this.getNewsList(); // 获取资讯列表
    this.getOrderStats(); // 获取订单统计
  },

  // 获取用户信息
  getUserInfo: function () {
    const token = wx.getStorageSync('token');
    if (!token) {
      // 未登录时返回登录页
      wx.redirectTo({
        url: '/pages/index/index'
      });
      return;
    }

    // 使用API获取用户信息
    api.getUserInfo(true).then(res => {
      if (res.code === 200 && res.data) {
        const userData = res.data.wechatUserDto;
        this.setData({
          userInfo: {
            avatarUrl: userData.avatarUrl || '',
            nickName: userData.nickName || '',
            phoneNumber: userData.phoneNumber || '',
            userId: userData.userId || ''
          },
          phoneNumber: userData.phoneNumber || '',
          avatar: userData.avatarUrl || ''
        });
      }
    }).catch(err => {
      console.error('获取用户信息失败:', err);
    });
  },

  // 获取订单统计数据
  getOrderStats: function () {
    // 从本地存储获取订单数据进行统计
    try {
      const allOrders = wx.getStorageSync('orders') || [];
      const userInfo = wx.getStorageSync('userInfo');
      const userId = userInfo ? userInfo.userId : null;
      
      // 筛选当前用户的订单
      let userOrders = [];
      if (userId) {
        userOrders = allOrders.filter(order => order.userId === userId);
      } else {
        // 如果没有用户ID，则默认显示所有订单（开发模式）
        userOrders = allOrders;
      }
      
      // 统计不同状态的订单数量
      const stats = {
        waiting: 0,
        paid: 0,
        completed: 0,
        cancelled: 0
      };
      
      userOrders.forEach(order => {
        if (order.status === 'pending') {
          stats.waiting++;
        } else if (order.status === 'paid') {
          stats.paid++;
        } else if (order.status === 'completed') {
          stats.completed++;
        } else if (order.status === 'canceled') {
          stats.cancelled++;
        }
      });
      
      this.setData({
        orderStats: stats
      });
      
    } catch (err) {
      console.error('获取订单统计失败:', err);
      this.setData({
        orderStats: {
          waiting: 0,
          paid: 0,
          completed: 0,
          cancelled: 0
        }
      });
    }
  },

  // 跳转到完善信息页面
  goToProfilePage: function () {
    console.log("进入个人详情页")
    wx.navigateTo({
      url: '/pages/my/profile/index'
    });
  },

  // 跳转到我的订单页面
  goToMyOrders: function() {
    wx.navigateTo({
      url: '/pages/my/orders/index'
    });
  },

  // 获取饮食记录统计
  getFoodRecord: function () {
    // 这里应当调用后端API获取饮食记录数据
    // 由于接口尚未提供，使用模拟数据
    this.setData({
      foodRecord: {
        balanceRatio: 85,
        breakfastCount: 18,
        shareCount: 5
      }
    });
  },

  // 获取关注列表
  getFollowList: function () {
    // 这里应当调用后端API获取关注列表
    // 由于接口尚未提供，使用空数组
    this.setData({
      followList: []
    });
  },

  // 跳转到饮食记录页面
  goToFoodRecord: function () {
    wx.navigateTo({
      url: '/pages/food/record/index'
    });
  },

  // 跳转到关注列表页面
  goToFollowList: function () {
    wx.navigateTo({
      url: '/pages/follow/index'
    });
  },

  // 获取资讯列表
  getNewsList: function () {
    // 调用获取资讯列表的API
    api.getNewsList().then(res => {
      if (res.code === 200 && res.data) {
        this.setData({
          newsList: res.data.list || []
        });
      }
    }).catch(err => {
      console.error('获取资讯列表失败:', err);
      // 设置与资讯列表页一致的模拟数据 
      this.setData({
        newsList: [
          {
            id: 1,
            title: '健康饮食指南：如何科学搭配营养餐',
            imageUrl: '/images/news/diet-guide.jpg',
            date: '2024-05-03',
            category: '营养知识'
          },
          {
            id: 2,
            title: '春季养生：应季食材推荐',
            imageUrl: '/images/news/spring-food.jpg',
            date: '2024-05-01',
            category: '季节饮食'
          },
        ]
      });
    });
  },

  // 功能点击处理
  goToFunction: function (e) {
    const func = e.currentTarget.dataset.function;

    switch (func) {
      // 权限设置
      case 'authorization':
        wx.navigateTo({
          url: '/pages/my/authorization/index'
        });
        break;
      case 'agreement':
        wx.navigateTo({
          url: '/pages/agreement/index'
        });
        break;
      case 'privacy':
        wx.navigateTo({
          url: '/pages/privacy/index'
        });
        break;

      // 饮食记录
      case 'foodRecord':
        wx.navigateTo({
          url: '/pages/food/record/index'
        });
        break;

      // 关注列表
      case 'follows':
        wx.navigateTo({
          url: '/pages/community/follows/index'
        });
        break;

      // 资讯列表
      case 'news':
        wx.navigateTo({
          url: '/pages/news/list/index'
        });
        break;

      // 退出登录
      case 'logout':
        this.logout();
        break;

      default:
        wx.showToast({
          title: '功能即将上线',
          icon: 'none'
        });
    }
  },

  // 退出登录
  logout: function () {
    wx.showModal({
      title: '提示',
      content: '确定要退出登录吗？',
      success: (res) => {
        if (res.confirm) {
          // 清除本地存储的登录信息
          wx.removeStorageSync('token');

          // 重置用户信息
          this.setData({
            userInfo: {
              avatarUrl: '',
              nickName: '',
              phoneNumber: '',
              userId: ''
            },
            phoneNumber: '',
            avatar: ''
          });

          // 跳转到登录页
          wx.reLaunch({
            url: '/pages/index/index'
          });
        }
      }
    });
  }
}); 